home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 July / 07_02.iso / software / mdmx / files / DreamweaverMXInstaller.exe / Disk1 / data1.cab / Configuration_En / Commands / Flash Button.js < prev    next >
Encoding:
JavaScript  |  2002-05-01  |  20.2 KB  |  604 lines

  1. // Copyright 2000-2002 Macromedia, Inc. All rights reserved.
  2.  
  3. //*************** GLOBAL CONSTANTS *****************
  4. var helpDoc = MM.HELP_objFlashButton;
  5. var TYPE_STR = "Flash Button";
  6. var STYLE_EXT_STR = "swt";
  7. var TYPE_PARAMETER = "dwType";
  8. var BUTTON_TEXT_PARAMETER = "Button Text";
  9. var BUTTON_URL_PARAMETER = "Button URL";
  10. var BUTTON_TARGET_PARAMETER = "Button Target";
  11. var BUTTON_FONT_PARAMETER = "Button Font";
  12. var BUTTON_SIZE_PARAMETER = "Button Size";
  13. var YIELD_PATH = "../Shared/MM/Images/yield.gif";
  14. var DEFAULT_SIZE = 15;
  15. var MAX_PREVIEW_WIDTH = 230;
  16. var MAX_PREVIEW_HEIGHT = 50;
  17. var MAX_FILE_LENGTH = 23;
  18. //*************** GLOBAL VARIABLES *****************
  19. // UI Elements
  20. var MENU_FONTS, MENU_TARGET;
  21. var LIST_STYLES;
  22. var TEXT_LABEL, TEXT_LINK, TEXT_BG, TEXT_SAVEAS, TEXT_SIZE;
  23. var COLORP_BG;
  24. var SWF_SAMPLE;
  25. var AREA_WARNING;
  26. // other globals
  27. var FILE_CONFIG_PATH = dw.getConfigurationPath();
  28. var FILE_BUTTON_STYLES_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons";
  29. var FILE_CURRENT_DOC_PATH;
  30. var ARRAY_TARGET_STR = new Array("","_blank","_parent","_self","_top");
  31. var REEDIT_SWF_PATH="";
  32. var FLAG_OVERWRITE = new Object();
  33. FLAG_OVERWRITE.state = false;
  34. FLAG_OVERWRITE.reEdit = false;
  35. var FILE_BUTTON_PREVIEW_PATH = FILE_CONFIG_PATH + "/Flash Objects/Flash Buttons Preview";
  36. var LAST_SIZE=DEFAULT_SIZE;
  37. //******************* API **********************
  38. function commandButtons()
  39. {
  40.    return new Array( MM.BTN_OK,  "cmdOK(); "
  41.                    , MM.BTN_Apply, "cmdApply();"
  42.                    , MM.BTN_Cancel, "cmdCancel();"
  43.                    , BTN_GetMoreStyles,'moreStyles();'
  44.                    , MM.BTN_Help, 'displayHelp()');
  45. }
  46.  
  47. function cmdOK()
  48. {
  49.   var done = insertButtonHTML();
  50.   if (done)
  51.     window.close();
  52.  
  53.   var objDOM = dreamweaver.getDocumentDOM();
  54.  
  55.   // check to see if accessibility option for media objects is turned on
  56.   prefsAccessibilityOption = dw.getPreferenceString("Accessibility", "Accessibility Media Options", "");
  57.   if(prefsAccessibilityOption == 'TRUE') {addAccessibility(objDOM);}
  58. }
  59.  
  60. function cmdApply()
  61. {
  62.  var filename = document.saveAsField.getAttribute("value");
  63.  insertButtonHTML();
  64.  FLAG_OVERWRITE.state = true;
  65.  FLAG_OVERWRITE.file = addExtention(filename, "swf");
  66. }
  67.  
  68. function cmdCancel()
  69. {
  70.   window.close();
  71. }
  72.  
  73. function moreStyles()
  74. {
  75.   dreamweaver.browseDocument(LABEL_MoreStylesURL);
  76.   window.close();
  77. }
  78.  
  79. function receiveArguments(swfPath)
  80. {
  81.   var fileName, fileObj;
  82.   if (swfPath)
  83.   {
  84.     REEDIT_SWF_PATH = swfPath;
  85.     fileObj = new File(REEDIT_SWF_PATH);
  86.     fileName = fileObj.getName();
  87.     FLAG_OVERWRITE.state = true;
  88.     FLAG_OVERWRITE.reEdit = true;
  89.     FLAG_OVERWRITE.file = fileName;
  90.   }
  91. }
  92. //***************** LOCAL FUNCTIONS  ******************
  93.  
  94. function initializeUI()
  95. {
  96.   var i, fileObj, filterFunction, targetArray,currentSwfPath, swfButtonParams;
  97.   var fileName, filesArray, fontArray;
  98.   FILE_CURRENT_DOC_PATH = dw.getDocumentPath("document");
  99.       //Global UI Controls
  100.   LIST_STYLES = new ListControl("stylesList");
  101.   MENU_TARGET = new ListControl("targetMenu");
  102.   MENU_FONTS = new ListControl("fontMenu");
  103.   TEXT_SIZE = document.sizeField;
  104.   TEXT_LABEL = document.labelField;
  105.   TEXT_LINK = document.linkField;
  106.   TEXT_BG = document.bgColorField;
  107.   TEXT_SAVEAS = document.saveAsField;
  108.   COLORP_BG = document.bgColorPicker;
  109.   SWF_SAMPLE = document.swfPreview;
  110.   AREA_WARNING = document.warningMsg;
  111.     // set the Styles list
  112.   fileObj = new File(FILE_BUTTON_STYLES_PATH);
  113.   filterFunction =  new Function("x", "return x.isFile() && (x.getExtension().toLowerCase()=='swt');");
  114.   filesArray = fileObj.listFolder(filterFunction);
  115.   if (filesArray.length>0)
  116.     LIST_STYLES.setAll(getMenuList(filesArray),filesArray);
  117.   else
  118.   {
  119.     alert(MSG_NoTemplatesFound);
  120.     window.close();
  121.     return "";
  122.   }
  123.   // set font menu
  124.   fontArray = filterFonts(dw.getSystemFontList("TrueType"));
  125.   if (!fontArray)
  126.   {
  127.     alert(MSG_NoFontsInstalled);
  128.     window.close();
  129.     return "";
  130.   }
  131.   else
  132.     MENU_FONTS.setAll(fontArray,fontArray);
  133.   TEXT_SIZE.value = DEFAULT_SIZE;
  134.     // set the Preview field
  135.   updateUI("stylesList");
  136.     // set target menu
  137.   docFrames = dw.getDocumentDOM().getFrameNames();
  138.   targetArray = ARRAY_TARGET_STR;
  139.   if (docFrames)
  140.    targetArray = targetArray.concat(docFrames);
  141.   MENU_TARGET.setAll(targetArray, targetArray);
  142.     // set the default file name
  143.   TEXT_SAVEAS.setAttribute("value",createUniqueFilename("button", getDocumentDir(FILE_CURRENT_DOC_PATH),MAX_FILE_LENGTH));
  144.   if (REEDIT_SWF_PATH)
  145.   {
  146.     REEDIT_SWF_PATH =File.getFullUrl(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH);  // modify button does not pass in full path
  147.     swfButtonParams = SWFFile.readFile(REEDIT_SWF_PATH);
  148.     swfButtonParams.unshift("templatePath");
  149. //    if (navigator.platform != "Win32")
  150.     if (!hasDoubleByteChar(swfButtonParams[1]))
  151.       swfButtonParams[1] = unescape(swfButtonParams[1]);
  152.     if (swfButtonParams.length % 2 != 0) // if last parameter has no value array is odd
  153.       swfButtonParams.push("");
  154.     populateUI(swfButtonParams,absoluteToRelativeURL(REEDIT_SWF_PATH, FILE_CURRENT_DOC_PATH,true));
  155.   }
  156.  
  157.   TEXT_LABEL.focus();
  158.   TEXT_LABEL.select();
  159.   return "";
  160. }
  161.  
  162. function updateUI(itemName)
  163. {
  164.   var currentStyle, browseURL, colorCP, colorF,previewFile, theLink, sizeArray;
  165.   switch(itemName)
  166.   {
  167.     case "stylesList":
  168.     {
  169.       currentStyle = LIST_STYLES.getValue();
  170.       stylePath = FILE_BUTTON_STYLES_PATH + "/"+ currentStyle;
  171.       previewFile = currentStyle.replace(/.swt/,".swf");
  172.       if (DWfile.exists(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile))
  173.       {
  174.         // [gc] read in default settings from swf preview file
  175.         var defaultParams = SWFFile.readFile(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  176.         defaultParams.unshift("templatePath");
  177.         if (defaultParams.length % 2 != 0) // if last parameter has no value array is odd
  178.         defaultParams.push("");
  179.         var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, defaultParams);
  180.         theFont        = getDefaultSystemFont(theFont);
  181.         var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, defaultParams);
  182.         if (!REEDIT_SWF_PATH && theFont )
  183.         {
  184.           if ( !MENU_FONTS.pickValue(theFont) )
  185.           {
  186.             var warnMsg = MSG_DefaultFontDoesNotExist;
  187.             warnMsg = warnMsg.replace(/%s/,theFont);
  188.             AREA_WARNING.innerHTML = createWarningMsgHTML(warnMsg, YIELD_PATH);
  189.           }
  190.           else
  191.             AREA_WARNING.innerHTML = "";
  192.         }
  193.         if (!REEDIT_SWF_PATH && theSize)
  194.           TEXT_SIZE.value = theSize/20;
  195.         sizeArray = SWFFile.getNaturalSize(FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  196.         SWF_SAMPLE.setAttribute("SRC",FILE_BUTTON_PREVIEW_PATH+"/"+previewFile);
  197.       }
  198.       else
  199.       {
  200.         if (AREA_WARNING.innerHTML != "")
  201.           AREA_WARNING.innerHTML = "";
  202.         sizeArray = SWFFile.getNaturalSize(stylePath);
  203.         SWF_SAMPLE.setAttribute("SRC",stylePath);
  204.       }
  205.      // resize preview area to natural size of template
  206.       if (sizeArray)
  207.       {
  208.         SWF_SAMPLE.setAttribute("WIDTH",sizeArray[0] > MAX_PREVIEW_WIDTH ? MAX_PREVIEW_WIDTH : sizeArray[0]);
  209.         SWF_SAMPLE.setAttribute("HEIGHT",sizeArray[1] > MAX_PREVIEW_HEIGHT ? MAX_PREVIEW_HEIGHT : sizeArray[1]);
  210.       }
  211.       break;
  212.     }
  213.     case "sizeField":
  214.     {
  215.       if (!isInteger(TEXT_SIZE.value))
  216.       {
  217.         TEXT_SIZE.value = LAST_SIZE;
  218.       }
  219.       else
  220.         LAST_SIZE = TEXT_SIZE.value
  221.     }
  222.     case "linkField":
  223.     {
  224.       theLink = TEXT_LINK.value;
  225.       if (isSiteRelative(theLink))
  226.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  227.       else if (theLink.indexOf("file:///")!=-1)
  228.         AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  229.       else
  230.         AREA_WARNING.innerHTML = "";
  231.       break;
  232.     }
  233.     case "saveAsField":
  234.     {
  235. //    if (TEXT_LINK.value)
  236. //      document.targetMenu.setAttribute("disabled", "false");
  237. //    else
  238. //      document.targetMenu.setAttribute("disabled", "true");
  239.       theLink = TEXT_LINK.value;
  240.       theSaveLoc = TEXT_SAVEAS.value;
  241.       if (theSaveLoc.indexOf('/') != -1){
  242.         if (isSiteRelative(theLink)){
  243.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_SiteRelLinkWarning, YIELD_PATH);
  244.           TEXT_LINK.focus();
  245.           TEXT_LINK.select();
  246.         }else if (isDocRel(theLink) && theLink!="#"){
  247.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_DocRelLinkWarning, YIELD_PATH);
  248.           TEXT_LINK.focus();
  249.           TEXT_LINK.select();
  250.         }else if (theLink.indexOf("file:///")!=-1){
  251.           AREA_WARNING.innerHTML = createWarningMsgHTML(MSG_LocalURLLinkWarning, YIELD_PATH);
  252.           TEXT_LINK.focus();
  253.           TEXT_LINK.select();
  254.         }else{
  255.           AREA_WARNING.innerHTML = "";
  256.         }
  257.       }
  258.       break;
  259.     }
  260.     case "linkButton":
  261.     {
  262.       browseURL = dreamweaver.browseForFileURL("select",LABEL_Select, false, true);
  263.       if (browseURL)
  264.         TEXT_LINK.setAttribute("value", browseURL);
  265.       updateUI("linkField");
  266.       break;
  267.     }
  268.     case "bgColorPicker":
  269.     {
  270.       updateColorPicker("colorPicker",COLORP_BG,TEXT_BG);
  271.       break;
  272.     }
  273.     case "bgColorField":
  274.     {
  275.       updateColorPicker("colorField",COLORP_BG,TEXT_BG);
  276.       break;
  277.     }
  278.     case "saveAsButton":
  279.     {
  280.       browseURL = dreamweaver.browseForFileURL("save",LABEL_Select, false, true);
  281.       browseURL = absoluteToRelativeURL(browseURL, FILE_CURRENT_DOC_PATH,false);
  282.       if (browseURL)
  283.         TEXT_SAVEAS.setAttribute("value", browseURL);
  284.       break;
  285.     }
  286.   }
  287. }
  288.  
  289. function generateParametersArray()
  290. {
  291.   var retVal = new Array();
  292.   var theLink = TEXT_LINK.value;
  293.   if (!theLink)
  294.     theLink = "javascript:;";   // this fixes the crash on netscape when getURL=""
  295.   retVal[0] = TYPE_PARAMETER;
  296.   retVal[1] = TYPE_STR;
  297.   retVal[2] = BUTTON_TEXT_PARAMETER;
  298.   retVal[3] = TEXT_LABEL.value;
  299.   retVal[4] = BUTTON_URL_PARAMETER;
  300.   retVal[5] = theLink;
  301.   retVal[6] = BUTTON_TARGET_PARAMETER;
  302.   retVal[7] = MENU_TARGET.get();
  303.   retVal[8] = BUTTON_FONT_PARAMETER;
  304.   retVal[9] = MENU_FONTS.get();
  305.   retVal[10] = BUTTON_SIZE_PARAMETER
  306.   retVal[11] = convertPtToTwip(TEXT_SIZE.value);
  307.   return retVal;
  308. }
  309.  
  310. function createFlashTag(swfURL)
  311. {
  312.   var retVal= new Array();
  313.   var theLink = TEXT_LINK.value;
  314.   var docRelURL = absoluteToRelativeURL(swfURL, FILE_CURRENT_DOC_PATH,true);
  315.   var baseValue = ".";
  316.   var sizeArray = SWFFile.getNaturalSize(swfURL);
  317.   var width, height;
  318.   var bgcolor = TEXT_BG.value;
  319.  
  320.   if (sizeArray)
  321.   {
  322.     width = sizeArray[0];
  323.     height = sizeArray[1];
  324.   }
  325.   else
  326.   {
  327.     width = 32;
  328.     height = 32;
  329.   }
  330.   retVal.push('<OBJECT CLASSID="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"');
  331.   retVal.push(' CODEBASE="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0"');
  332.   retVal.push(' WIDTH="' + width + '" HEIGHT="'+ height + '">\n');
  333.   retVal.push('<PARAM NAME="movie" VALUE="' + docRelURL + '"> <PARAM NAME="quality" VALUE="high">\n' );
  334.   if (isDocRel(theLink))
  335.     retVal.push('<PARAM NAME="base" VALUE="' + baseValue + '">\n');
  336.   if (bgcolor)
  337.     retVal.push('<PARAM NAME="bgcolor" VALUE="' + bgcolor + '">\n');
  338.   retVal.push('<EMBED SRC="' + docRelURL +'"');
  339.   if (isDocRel(theLink))
  340.     retVal.push( ' BASE="' + baseValue+ '" ');
  341.   retVal.push(   ' QUALITY="high" PLUGINSPAGE="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" ' +
  342.          'TYPE="application/x-shockwave-flash" ');
  343.   retVal.push('WIDTH="' + width + '" HEIGHT="'+ height +'" ');
  344.   if (bgcolor)
  345.     retVal.push('BGCOLOR="' + bgcolor + '"');
  346.   retVal.push('>' +'</EMBED>\n' + '</OBJECT>');
  347.   return  retVal.join("");
  348. }
  349.  
  350. function insertButtonHTML()
  351. {
  352.   var data, outputFilePath,templateFile,currentStyle, canCreateFile=false;
  353.   var success=false, createFileMsg;
  354.   var theLink = TEXT_LINK.value;
  355.   var fileName = TEXT_SAVEAS.value;
  356.   var dom = dw.getDocumentDOM();
  357.   var selectedNode,wasPlaying, temp1, temp2;
  358.   if (dom.canStopPlugin())
  359.   {
  360.     dom.stopPlugin();
  361.     wasPlaying = true;
  362.   }
  363.   if (fileName.charAt(0) == " ")
  364.   {
  365.     alert(MSG_FilenameStartWithSpace);
  366.     return false;
  367.   }
  368.   if (!fileName)
  369.     alert(MSG_SaveAsFieldIsEmpty);
  370.   else if ((outputFilePath = resolveFilePath(fileName,FILE_CURRENT_DOC_PATH,"swf")) == "")
  371.     alert(errMsg(MSG_InvalidFileName,fileName));
  372.   else
  373.   {
  374.     outputFilePath = truncateFileName(MAX_FILE_LENGTH, outputFilePath);
  375.     if (!checkLink(theLink,outputFilePath,FILE_CURRENT_DOC_PATH))
  376.       return false;
  377.     if (DWfile.exists(outputFilePath) && DWfile.getAttributes(outputFilePath)=="R")
  378.     {
  379.       alert(errMsg(MSG_ReadOnlyFile,outputFilePath));
  380.       return false;
  381.     }
  382.     if (!DWfile.exists(outputFilePath) || (FLAG_OVERWRITE.state == true && FLAG_OVERWRITE.file == addExtention(fileName, "swf")))
  383.       canCreateFile=true;
  384.     else if (confirm(errMsg(MSG_FileAlreadyExists, outputFilePath)))
  385.       canCreateFile=true;
  386.     if (canCreateFile==true)
  387.     {
  388.       data = generateParametersArray();
  389.       currentStyle = LIST_STYLES.getValue();
  390.       templateFile = FILE_BUTTON_STYLES_PATH + "/" + currentStyle;
  391.       MM.setBusyCursor();
  392.       if (navigator.platform == "Win32")
  393.         createFileMsg = SWFFile.createFile(templateFile,data,outputFilePath);
  394.       else{
  395.         temp1 = (hasDoubleByteChar(templateFile)) ?   templateFile : escape(templateFile);
  396.         temp2 = (hasDoubleByteChar(outputFilePath)) ?   outputFilePath : escape(outputFilePath);
  397.         createFileMsg = SWFFile.createFile(temp1,data,temp2);
  398.       }
  399.       MM.clearBusyCursor();
  400.       if (createFileMsg=="noError")
  401.       {
  402.         if (!FLAG_OVERWRITE.reEdit){
  403.           dom.insertHTML(createFlashTag(outputFilePath), FLAG_OVERWRITE.state);
  404.         }
  405.         else
  406.         {
  407.           selectedNode = dom.getSelectedNode();
  408.           editButtonAttribute(outputFilePath,currentStyle,selectedNode);
  409. // **** next line is a hack that needs to be removed when setSelectedNode bug fixed
  410.           selectedNode.outerHTML = selectedNode.outerHTML;
  411. //        dom.setSelectedNode(selectedNode);
  412.         }
  413.         dom.notifyFlashObjectChanged();
  414.         success = true;
  415.       }
  416.       else
  417.         alert(generatorErrorMsg(createFileMsg,fileName));
  418.     }
  419.   }
  420.   if (wasPlaying)
  421.     dom.playPlugin();
  422.   return success;
  423. }
  424.  
  425. function populateUI(paramArray, fileName)
  426. {
  427.   var templatePath = getValueFromParameters("templatePath", paramArray);
  428.   var textLabel = getValueFromParameters(BUTTON_TEXT_PARAMETER, paramArray);
  429.   var theLink = getValueFromParameters(BUTTON_URL_PARAMETER, paramArray);
  430.   var theTarget = getValueFromParameters(BUTTON_TARGET_PARAMETER, paramArray);
  431.   var theFont = getValueFromParameters(BUTTON_FONT_PARAMETER, paramArray);
  432.   var theSize = getValueFromParameters(BUTTON_SIZE_PARAMETER, paramArray);
  433.   var tempFile = new File(templatePath);
  434.   var styleName = tempFile.getName();
  435.   var docDOM = dw.getDocumentDOM('document');
  436.   var bgcolor = getSelectedNodeAttr("BGCOLOR",docDOM);
  437.  
  438.   FLAG_OVERWRITE.style = tempFile.getSimpleName();
  439.   FLAG_OVERWRITE.width = getSelectedNodeAttr("WIDTH",docDOM);
  440.   FLAG_OVERWRITE.height = getSelectedNodeAttr("HEIGHT",docDOM);
  441.   if (!LIST_STYLES.pickValue(styleName))
  442.   {
  443.     if (!confirm(errMsg(MSG_TemplateNotFound, styleName)))
  444.     window.close();
  445.   }
  446.   if (!MENU_FONTS.pickValue(theFont))
  447.   {
  448.     if (!confirm(errMsg(MSG_FontDoesNotExist,theFont)))
  449.     window.close();
  450.   }
  451.   updateUI("stylesList");
  452. //  if (textLabel)
  453.     TEXT_LABEL.value = textLabel;
  454.   if (theLink && theLink !="javascript:;")
  455.     TEXT_LINK.value = theLink;
  456.   if (theTarget)  // ***** check to see if target exists
  457.     if (!MENU_TARGET.pickValue(theTarget))
  458.       {
  459.         if (!confirm(errMsg(MSG_FrameNotFound, theTarget)))
  460.           window.close();
  461.       }
  462.   TEXT_SAVEAS.value = fileName;
  463.   TEXT_SIZE.value = theSize/20;
  464.   if (bgcolor)
  465.     TEXT_BG.value = bgcolor;
  466.   updateUI('bgColorField');
  467.   return true;
  468. }
  469.  
  470. function generatorErrorMsg(createFileMsg,currentStyle,fileName)
  471. {
  472.   var generatorMsgArray = new Array("invalidData","initGeneratorFailed","outOfMemory","unknownError");
  473.   var returnMsgArray;
  474.   if ( "macos" == DWfile.getPlatform() )
  475.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailedMac,MSG_OutOfMemory,MSG_UnknownError);
  476.   else
  477.     returnMsgArray = new Array(MSG_InvalidData,MSG_InitGeneratorFailed,MSG_OutOfMemory,MSG_UnknownError);
  478.   var retVal = "";
  479.   if (createFileMsg == "invalidTemplateFile")
  480.     retVal = errMsg(MSG_InvalidButtonStyle,currentStyle);
  481.   else if (createFileMsg == "invalidOutputFile")
  482.     retVal = errMsg(MSG_InvalidFileName,fileName);
  483.   else
  484.   {
  485.     for (var i=0;i<generatorMsgArray.length;i++)
  486.     {
  487.       if (createFileMsg == generatorMsgArray[i])
  488.       {
  489.         retVal = returnMsgArray[i];
  490.         break;
  491.       }
  492.     }
  493.   }
  494.   return retVal;
  495. }
  496.  
  497. function editButtonAttribute(outputFilePath,currentStyle,selectedNode)
  498. {
  499.   var sizeArray = SWFFile.getNaturalSize(outputFilePath);
  500.   var bgcolor = TEXT_BG.value;
  501.   var width = sizeArray[0];
  502.   var height = sizeArray[1];
  503.   var theLink = TEXT_LINK.value;
  504.   var docRelURL = absoluteToRelativeURL(outputFilePath, FILE_CURRENT_DOC_PATH,true);
  505.   var tagsToAdd = new Array();
  506.   if (outputFilePath != REEDIT_SWF_PATH)
  507.   {
  508.     setFlashAttribute("PARAM","MOVIE",docRelURL,selectedNode,tagsToAdd);
  509.     setFlashAttribute("EMBED","SRC",docRelURL,selectedNode);
  510.   }
  511.  
  512.   var currentStyleName = currentStyle;
  513.   var index = currentStyleName.lastIndexOf(".");
  514.   if (index != -1)
  515.     currentStyleName = currentStyleName.substring(0,index);
  516.   if (currentStyleName != FLAG_OVERWRITE.style)
  517.   {
  518.     setFlashAttribute("OBJECT","WIDTH",width,selectedNode);
  519.     setFlashAttribute("OBJECT","HEIGHT",height,selectedNode);
  520.     setFlashAttribute("EMBED","WIDTH",width,selectedNode);
  521.     setFlashAttribute("EMBED","HEIGHT",height,selectedNode);
  522.   }
  523.   setFlashAttribute("EMBED","BGCOLOR",bgcolor,selectedNode);
  524.   setFlashAttribute("PARAM","BGCOLOR",bgcolor,selectedNode,tagsToAdd);
  525.   if (isDocRel(theLink))
  526.   {
  527.     setFlashAttribute("PARAM","BASE",".",selectedNode,tagsToAdd);
  528.     setFlashAttribute("EMBED","BASE",".",selectedNode);
  529.   }
  530.   else
  531.   {
  532.     setFlashAttribute("PARAM","BASE","",selectedNode,tagsToAdd,true);
  533.     setFlashAttribute("EMBED","BASE","",selectedNode);
  534.   }
  535.   if (tagsToAdd.length>0)
  536.     selectedNode.innerHTML = tagsToAdd.join("") + selectedNode.innerHTML;
  537. }
  538.  
  539. function getMenuItemNames(fileURL)
  540. {
  541.   var dom = dreamweaver.getDocumentDOM(fileURL);
  542.   var menuitemArray = new Array();
  543.   var retArray = new Array();
  544.  
  545.   menuitemArray = dom.getElementsByTagName("menuitem");
  546.   for (var i=0; i<menuitemArray.length; i++)
  547.   {
  548.     retArray[menuitemArray[i].getAttribute("FILE")] = menuitemArray[i].getAttribute("NAME");
  549.   }
  550.   return retArray;
  551. }
  552.  
  553. function getMenuList(fileList)
  554. {
  555.   var menuFile = FILE_CONFIG_PATH + "/Commands/Flash Button.xml"
  556.   var fileLabelHash = getMenuItemNames(menuFile);
  557.   var retArray = new Array();
  558.   var label,index;
  559.   for (var i=0; i<fileList.length;i++)
  560.   {
  561.     label = fileLabelHash[fileList[i]];
  562.     if (!label)
  563.     {
  564.       index = fileList[i].lastIndexOf(".");
  565.       if (index != -1)
  566.         label = fileList[i].substring(0, index);
  567.       else
  568.         label = fileList[i];
  569.     }
  570.     retArray.push(label);
  571.   }
  572.   return retArray;
  573. }
  574.  
  575. // get the system default font for Asian languages
  576. function getDefaultSystemFont(theFont)
  577. {
  578.     if (dreamweaver.appVersion && dreamweaver.appVersion.indexOf('ja') != -1) {  // Japanese version?
  579.         if ( "macos" == DWfile.getPlatform() )
  580.             return LABEL_DefaultSystemFontMac;
  581.         else
  582.             return LABEL_DefaultSystemFontWin;
  583.     }
  584.     else 
  585.         return theFont;
  586. }
  587.  
  588. ///////////////////////////////////////////////////////////////////
  589. //  addAccessibility: called when Accessibility Option is turned on
  590. //  
  591. // receives: current document object
  592. // returns : nothing
  593. //
  594. //  Flash Options.htm dialog collects the attributes.
  595.  
  596. function addAccessibility(objDom) {
  597.    var cmdFile = dreamweaver.getConfigurationPath() + "/Commands/Flash Options.htm";
  598.    var cmdDOM = dreamweaver.getDocumentDOM(cmdFile);
  599.    
  600.    cmdDOM.parentWindow.setFormItem(objDom);
  601.    dreamweaver.popupCommand("Flash Options.htm");
  602.  
  603. }
  604.